<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
<meta name="description" content="LuaSocket: DNS support">
<meta name="keywords" content="Lua, LuaSocket, DNS, Network, Library, Support">
<title>LuaSocket: DNS support</title>
<link rel="stylesheet" href="reference.css" type="text/css">
</head>

<body>

<!-- header +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<div class="header">
<hr>
<center>
<table summary="LuaSocket logo">
<tr><td align="center"><a href="http://www.lua.org">
<img width="128" height="128" border="0" alt="LuaSocket" src="luasocket.png">
</a></td></tr>
<tr><td align="center" valign="top">Network support for the Lua language
</td></tr>
</table>
<p class="bar">
<a href="index.html">home</a> &middot;
<a href="index.html#download">download</a> &middot;
<a href="installation.html">installation</a> &middot;
<a href="introduction.html">introduction</a> &middot;
<a href="reference.html">reference</a>
</p>
</center>
<hr>
</div>

<!-- dns ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<h2 id="dns">DNS</h2>

<p>
IPv4 name resolution functions
<a href="#toip"><tt>dns.toip</tt></a>
and
<a href="#tohostname"><tt>dns.tohostname</tt></a>
return <em>all</em> information obtained from
the resolver in a table of the form:
</p>

<blockquote><tt>
resolved4 = {<br>
&nbsp;&nbsp;name = <i>canonic-name</i>,<br>
&nbsp;&nbsp;alias = <i>alias-list</i>,<br>
&nbsp;&nbsp;ip = <i>ip-address-list</i><br>
}
</tt> </blockquote>

<p>
Note that the <tt>alias</tt> list can be empty.
</p>

<p>
The more general name resolution function
<a href="#getaddrinfo"><tt>dns.getaddrinfo</tt></a>, which
supports both IPv6 and IPv4,
returns <em>all</em> information obtained from
the resolver in a table of the form:
</p>

<blockquote><tt>
resolved6 = {<br>
&nbsp;&nbsp;[1] = {<br>
&nbsp;&nbsp;&nbsp;&nbsp;family = <i>family-name-1</i>,<br>
&nbsp;&nbsp;&nbsp;&nbsp;addr = <i>address-1</i><br>
&nbsp;&nbsp;},<br>
&nbsp;&nbsp;...<br>
&nbsp;&nbsp;[n] = {<br>
&nbsp;&nbsp;&nbsp;&nbsp;family = <i>family-name-n</i>,<br>
&nbsp;&nbsp;&nbsp;&nbsp;addr = <i>address-n</i><br>
&nbsp;&nbsp;}<br>
}
</tt> </blockquote>

<p>
Here, <tt>family</tt> contains the string <tt>"inet"</tt> for IPv4
addresses, and <tt>"inet6"</tt> for IPv6 addresses.
</p>

<!-- getaddrinfo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<p class="name" id="getaddrinfo">
socket.dns.<b>getaddrinfo(</b>address<b>)</b>
</p>

<p class="description">
Converts from host name to address.
</p>

<p class="parameters">
<tt>Address</tt> can  be an IPv4 or IPv6 address or host name.
</p>

<p class="return">
The function returns a table with  all  information returned  by
the  resolver.  In  case of error, the function returns <b><tt>nil</tt></b>
followed by an error message.
</p>

<!-- gethostname ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<p class="name" id="gethostname">
socket.dns.<b>gethostname()</b>
</p>

<p class="description">
Returns the standard host name for the machine as a string.
</p>

<!-- tohostname +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<p class="name" id="tohostname">
socket.dns.<b>tohostname(</b>address<b>)</b>
</p>

<p class="description">
Converts from IPv4 address to host name.
</p>

<p class="parameters">
<tt>Address</tt> can  be an IP address  or host name.
</p>

<p class="return">
The function returns a string  with the canonic host name of the given
<tt>address</tt>, followed  by a  table with  all  information returned  by
the  resolver.  In  case of error, the function returns <b><tt>nil</tt></b>
followed by an error message.
</p>

<!-- toip +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<p class="name" id="toip">
socket.dns.<b>toip(</b>address<b>)</b>
</p>

<p class="description">
Converts from host name to IPv4 address.
</p>

<p class="parameters">
<tt>Address</tt> can  be an IP address  or host name.
</p>

<p class="return">
Returns a string  with the first IP address  found for <tt>address</tt>,
followed  by a  table with  all  information returned  by the  resolver.
In  case of error, the function returns <b><tt>nil</tt></b> followed by an error
message.
</p>

<!-- footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<div class="footer">
<hr>
<center>
<p class="bar">
<a href="index.html">home</a> &middot;
<a href="index.html#down">download</a> &middot;
<a href="installation.html">installation</a> &middot;
<a href="introduction.html">introduction</a> &middot;
<a href="reference.html">reference</a>
</p>
<p>
<small>
Last modified by Diego Nehab on <br>
Thu Apr 20 00:25:07 EDT 2006
</small>
</p>
</center>
</div>

</body>
</html>
